Cap. 1 Objetos e Classes

GAC125 - Introdução à Programação Orientada a Objetos

DAC - ICET - Universidade Federal de Lavras

22/08/2023

Como estudar esse conteúdo?

Estes slides se baseiam no Cap. 1 do livro da disciplina

Capa do livro do Barnes e Kolling.

  • Portanto, recomendo que estude pelo livro, pois ele tem muito mais detalhes que os slides.
  • E você pode também assistir à videoaula desse capítulo.

Dica: faça anotações!

Em qualquer dos casos, é altamente recomendável, ter um caderno e caneta para anotar os principais conceitos e eventuais dúvidas que surgirem.

Como estudar esse conteúdo?

Outra dica fundamental é:

  • O conteúdo é totalmente atrelado à prática usando o BlueJ

  • Não adianta ler os slides, ou ficar apenas assistindo à videoaula.

  • É necessário usar o BlueJ e praticar você mesmo!

  • Se ainda não instalou o BlueJ em seu computador, a hora é agora!

Prints do BlueJ.

Principais Conceitos do Capítulo

  • Objetos
  • Classes
  • Métodos
  • Parâmetros

Vamos começar nossa jornada no mundo da Programação Orientada a Objetos (PPOO)!

Vamos conhecer os conceitos mais importantes que são a base de tudo: Objetos e Classes

1.1 Objetos e Classes

Como você descreveria essa cena?

Provavelmente listando os objetos que nela se encontram.

  • Isso porque nós entendemos o mundo através dos objetos!

E o que essas imagens têm em comum?

Elas são objetos!

  • Objetos são uma forma de representarmos o mundo.

Ao criar um programa em uma linguagem Orientada a Objetos (OO)

  • você está criando um modelo de alguma parte do mundo
  • as partes do modelo são construídas a partir de objetos do domínio do problema

Os objetos que criamos dependem do problema que estamos resolvendo

  • Se estiver criando um software com o Word, podem ser palavras e parágrafos.
  • Já se estiver programando uma rede social, podem ser usuários e mensagens.
  • Mas podem ser também monstros se estiver criando um jogo

Os objetos podem ser coisas mais concretas, como jogadores em um jogo de futebol.

  • Ou coisas mais abstratas, como um campeonato ou uma partida do jogo

Conceito

Objeto
Objetos Java modelam objetos do domínio de um problema

Objetos podem ser categorizados

Uma classe descreve, de forma abstrata, todos os objetos de um tipo específico.

Para ficar mais claro, vamos pensar em um exemplo: uma simulação de trânsito.

  • Claramente, nós precisaremos lidar com carros.
  • Nesse contexto, um carro é uma classe ou um objeto?

Para nos ajudar a decidir, vamos pensar em algumas perguntas?

  • Que cor tem um carro?
  • O carro é rápido?
  • Qual direção está indo agora?

Não dá para responder sem especificar de qual carro estamos falando.

  • Isso porque a palavra “carro” nesse contexto, se refere a uma classe carro.
  • Estamos falando de carros em geral e não de um carro em particular.

Agora, se eu digo: “meu carro velho está parado no estacionamento”.

  • Podemos responder às perguntas.
  • O carro é prata, é lento, e está no estacionamento.

Portanto, agora estou falando de um objeto carro, pois é um exemplo de um carro em particular.

Uma classe pode ser vista como o projeto de um carro

Em uma fábrica de automóveis, por exemplo:

  • Os engenheiros criam o projeto do carro.
  • Depois os carros são produzidos de acordo com aquele projeto.

Nesse exemplo o projeto seria a classe, e os carros os objetos.

Uma classe pode ser vista como a planta de uma casa

Em um conjunto habitacional:

  • O engenheiro cria uma planta idêntica para todas as casas.
  • As casas são então construídas de acordo com a planta.

Nesse exemplo a planta seria a classe, e as casas os objetos.

Pode realmente acontecer de nosso programa ter apenas um objeto de uma determinada classe.

Costumamos dizer que um objeto particular é uma instância de uma classe.

  • Instância é sinônimo de exemplar daquele tipo, sinônimo de objeto em OO.
  • Serve para enfatizar que é um exemplo particular de um classe específica.

Conceito

Classe
Objetos são criados a partir de classes. A classe descreve o tipo do objeto; e os objetos representam instâncias individuais da classe.

1.2 Criando objetos

Baixe o projeto de exemplo figuras e abra-o no BlueJ.

Como baixar o projeto?

Os projetos da disciplina são disponibilizados no GitHub. Se nunca o utilizou, não se preocupe.

  • Clicando no link do projeto você verá um botão verde bem destacado escrito Code.
  • Clique nele e vá na última opção: Download ZIP.
  • Descompacte o arquivo no seu computador, entre na pasta criada e clique duas vezes no arquivo: package.bluej.

Ao abrir o projeto verá um diagrama.

  • Cada retângulo representa uma classe no seu projeto.
  • Clique com o botão direito em Circulo e escolha a opção new Circulo().
  • O sistema pedirá o nome da instância, apenas clique em OK.

Você verá um retângulo na parte inferior do BlueJ, chamado “circulo1”.

Acabamos de criar nosso primeiro objeto.

  • A caixa retangular representa a classe Circulo.
  • E circulo1 é um objeto dessa classe.
    • Essa parte que mostra os objetos é chamada de bancada de objetos.

Convenção

Começamos os nomes de classes com letras maiúsculas e os nomes de objetos com letras minúsculas. Isso ajuda a identificar do que estamos falando.

Exercício

Agora é com você: experimente criar outro círculo e um quadrado.

1.3 Chamando métodos

Clique com o botão direito no objeto círculo (não na classe!) e você verá um menu com várias opções.

Escolha a opção exibir no menu

  • Isso vai desenhar uma representação do círculo em uma janela separada

Veja que existem várias opções no menu do círculo.

  • Tente chamar moverDireita e moverBaixo algumas vezes até o círculo chegar perto do canto.
  • Experimente também usar exibir e esconder.

Exercício

O que acontece se você chamar moverBaixo duas vezes? Ou três vezes? O que acontece se chamar esconder duas vezes?

As opções do menu círculo representam operações que você pode usar para manipular o círculo

  • Elas são chamadas de métodos em Java.
  • Nós dizemos que os métodos são chamados ou invocados.

Conceito

Método
Podemos nos comunicar com objetos através da chamada de seus métodos. Geralmente os objetos fazem alguma coisa quando chamamos um método.